package com.tai.test;

import java.math.BigDecimal;
import java.util.Arrays;

/**
 * The type Hourse.
 *
 * @Desc : 25匹马问题
 * @Author ： taylor
 * @Date ：2021/12/21 18:35
 */
public class Hourse  {

    /**
     * The entry point of application.
     *
     * @param args the input arguments
     */
    public static void main(String[] args) {
        BigDecimal[] a1[] = new BigDecimal[5][5];
        BigDecimal[] a2[] = new BigDecimal[5][3];
        BigDecimal[] a3[] = new BigDecimal[5][3];
        System.out.println("===============================================================");
        System.out.println("25匹随机马的速度");
        for (int i = 0; i < a1.length; i++) {
            for (int i1 = 0; i1 < a1[i].length; i1++) {
                a1[i][i1] = new BigDecimal(Math.random() * 9+1).setScale(2, BigDecimal.ROUND_HALF_DOWN);
                System.out.print(a1[i][i1] + "\t\t");
            }
            System.out.println();
        }
        for (int i = 0; i < a1.length; i++) {

            Arrays.sort(a1[i]);

        }
        BigDecimal m;
        for (int i = 0; i < a2.length; i++) {
            for (int i1 = 0; i1 < a2[i].length; i1++) {
                m = a1[i][a1[i].length - 1 - i1];
                a2[i][i1] = m;

            }

        }
        System.out.println("===============================================================");
        System.out.println("五次比赛后25匹随机马的速度排列");
        for (int i = 0; i < a1.length; i++) {
            for (int i1 = 0; i1 < a1[i].length; i1++) {

                System.out.print(a1[i][i1] + "\t\t");
            }
            System.out.println();
        }
//        System.out.println("===============================================================");
//        System.out.println("===============================================================");
//        System.out.println("取五次比赛后25匹随机马的速度排列的前三名");
//        for (int i = 0; i < a2.length; i++) {
//            for (int i1 = 0; i1 < a2[i].length; i1++) {
//
//                System.out.print(a2[i][i1] + "\t\t");
//            }
//            System.out.println();
//        }

        int[] z = new int[5];
        ;// 存放排序后数组元素原来所在数组的下标
        BigDecimal[] b = new BigDecimal[5];// 存放需要排序列的数组
        BigDecimal[] d = new BigDecimal[5];// 存放b[]升序后的数组
        for (int i = 0; i < 5; i++) {
            b[i] = a2[i][0];

        }
        for (int i = 0; i < b.length; i++) {
            d[i] = b[i];
        }
        Arrays.sort(d);// 升序排列
        for (int i = 0; i < d.length; i++) {
            for (int j = 0; j < d.length; j++) {
                if (d[i] == b[j]) {
                    z[i] = j;
                    b[j] = new BigDecimal(-999999);
                    break;
                } else {
                    continue;
                }
            }
        }
        System.out.println("===============================================================");
        System.out.println("第六次比赛：25匹随机马的速度排列的前三名中的第一名比赛结果排列");
        for (int i = 0; i < a3.length; i++) {
            for (int j = 0; j < a3[i].length; j++) {
                a3[i][j] = a2[z[i]][j];
                System.out.print(a3[i][j] + "\t\t");
            }
            System.out.println();
        }
        System.out.println("===============================================================");
        System.out.println("除去第一名 其他存在争议的马屁比赛结果");
        BigDecimal[] mm = {a3[4][1], a3[4][2], a3[3][0], a3[3][1], a3[2][0]};
        Arrays.sort(mm);
        for (int i = 0; i < mm.length; i++) {
            System.out.print(mm[i] + "\t\t");
        }
        System.out.println();
        System.out.println("===============================================================");
        System.out.println("最快的三匹马为" + a3[4][0] + "\t\t" + mm[4] + "\t\t" + mm[3]);


    }
}


